Package org.javacommerce.paypal.servlet

Source Code of org.javacommerce.paypal.servlet.DirectPaymentServlet

/**
*
*/
package org.javacommerce.paypal.servlet;

import java.io.IOException;
import java.rmi.RemoteException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.javacommerce.paypal.APIUtil;
import org.javacommerce.paypal.ws.API;
import org.javacommerce.paypal.ws.APICredential;
import org.javacommerce.paypal.ws.APIException;

import PayPalAPI.api.ebay.DoDirectPaymentResponseType;
import eBLBaseComponents.apis.ebay.DoDirectPaymentRequestDetailsType;

/**
* Servlet to support PayPal's Direct Payment API.  Supports POST method only.
* @author Michael Blanton (mike@mikeblanton.com)
* @web.servlet name="DirectPayment"
* @web.servlet-mapping url-pattern="/DirectPayment"
*/
public class DirectPaymentServlet extends BaseServlet {

  private static final Log LOG = LogFactory.getLog(DirectPaymentServlet.class);
 
  /**
   *
   */
  private static final long serialVersionUID = -8470270479015445490L;

  /* (non-Javadoc)
   * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
   */
  protected void doPost(HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException {
    runDoDirectPayment(_request, _response);
  }

  /**
   * @param _request
   * @param _response
   * @throws ServletException
   */
  protected final void runDoDirectPayment(HttpServletRequest _request, HttpServletResponse _response) throws ServletException {
    if (LOG.isDebugEnabled()) {
      LOG.debug("Executing DoDirectPayment API call.");
    }
    APICredential credentials;
    try {
      credentials = getAPICredentials(_request);
    } catch (APIException e) {
      writeException("DP-1003", "Error executing DoDirectPayment API call", null, e, _response);
      return;
    }
    DoDirectPaymentRequestDetailsType request = APIUtil.buildDoDirectPaymentRequestDetails(_request);
    try {
      DoDirectPaymentResponseType response = API.doDirectPayment(request, credentials);
      if (LOG.isDebugEnabled()) {
        LOG.debug("DoDirectPayment API call returned [" + response.getAck() + "], building XML.");
      }
      writeObject(response, _response);
      if (LOG.isDebugEnabled()) {
        LOG.debug("XML written to Output Stream");
      }
    } catch (RemoteException e) {
      writeException("DP-1000", "Error executing DoDirectPayment API call", credentials, e, _response);
    }
  }

  protected void doGet(HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException {
    notAllowed(_response, "POST");
  }

  protected void doPut(HttpServletRequest _request, HttpServletResponse _response) throws ServletException, IOException {
    notAllowed(_response, "POST");
  }


}
TOP

Related Classes of org.javacommerce.paypal.servlet.DirectPaymentServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.